﻿using System.Collections.ObjectModel;
using System.Xml;

namespace Renci.Data.Interop.OpenGIS.Smil20
{
    /// <remarks/>
    [System.CodeDom.Compiler.GeneratedCodeAttribute("xsd", "2.0.50727.3038")]
    [System.SerializableAttribute()]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    [System.Xml.Serialization.XmlTypeAttribute(Namespace = "http://www.w3.org/2001/SMIL20/Language")]
    [System.Xml.Serialization.XmlRootAttribute("animateColor", Namespace = "http://www.w3.org/2001/SMIL20/", IsNullable = false)]
    public class AnimateColorType : AnimateColorPrototype, ICoreAttrs, ITimingAttrs, IAnimTargetAttrs, IAnimModeAttrs, ISkipContentAttrs
    {
        /// <remarks/>
        public AnimateColorType()
        {
            this.CalcMode = AnimateTypeCalcMode.Linear;
            this.SkipContent = true;
            this.SyncBehaviorDefault = "inherit";
            this.SyncToleranceDefault = "inherit";
            this.Restart = "default";
            this.RestartDefault = "inherit";
            this.FillTiming = "default";
            this.FillDefault = "inherit";
        }

        private Collection<XmlElement> _elements = new Collection<XmlElement>();
        /// <remarks/>
        [System.Xml.Serialization.XmlAnyElementAttribute()]
        public Collection<XmlElement> Elements
        {
            get
            {
                return this._elements;
            }
        }

        private Collection<XmlAttribute> _attributes = new Collection<XmlAttribute>();
        /// <remarks/>
        [System.Xml.Serialization.XmlAnyAttributeAttribute()]
        public Collection<XmlAttribute> Attributes
        {
            get
            {
                return this._attributes;
            }
        }

        #region IStructureModuleAttrs Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("id", DataType = "ID")]
        public string Id { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("class")]
        public string Class { get; set; }

        /// <summary>
        /// In due course, we should install the relevant ISO 2- and 3-letter codes as the enumerated possible values . . .
        /// </summary>
        [System.Xml.Serialization.XmlAttributeAttribute("lang", DataType = "language")]
        [System.ComponentModel.DefaultValueAttribute("en")]
        public string Language { get; set; }

        #endregion

        #region IAlternateContentAttrs Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("alt")]
        public string Alt { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("longdesc", DataType = "anyURI")]
        public string LongDescription { get; set; }

        #endregion

        #region IBeginEndTimingAttrs Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("begin")]
        public string BeginTiming { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("end")]
        public string EndTiming { get; set; }

        #endregion

        #region IDurTimingAttrs Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("dur")]
        public string DurationTiming { get; set; }

        #endregion

        #region IRepeatTimingAttrs Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("repeatDur")]
        public string RepeatDuration { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("repeatCount")]
        public string RepeatCount { get; set; }

        #endregion

        #region IDeprecatedRepeatTiming Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("repeat", DataType = "nonNegativeInteger")]
        public string RepeatTiming { get; set; }

        #endregion

        #region IMinMaxTimingAttrs Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("min")]
        public string Minimum { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("max")]
        public string Maximum { get; set; }

        #endregion

        #region ISyncBehaviorAttrs Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("syncBehavior")]
        public string SynchBehavior { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("syncTolerance")]
        public string SyncTolerance { get; set; }

        #endregion

        #region ISyncBehaviorDefaultAttrs Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("syncBehaviorDefault")]
        [System.ComponentModel.DefaultValue("inherit")]
        public string SyncBehaviorDefault { get; set; }

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("syncToleranceDefault")]
        [System.ComponentModel.DefaultValue("inherit")]
        public string SyncToleranceDefault { get; set; }

        #endregion

        #region IRestartTimingAttrs Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("restart")]
        [System.ComponentModel.DefaultValue("default")]
        public string Restart { get; set; }

        #endregion

        #region IRestartDefaultAttrs Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("restartDefault")]
        [System.ComponentModel.DefaultValue("inherit")]
        public string RestartDefault { get; set; }

        #endregion

        #region IFillTimingAttrs Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("fill")]
        [System.ComponentModel.DefaultValue("default")]
        public string FillTiming { get; set; }

        #endregion

        #region IFillDefaultAttrs Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("fillDefault")]
        [System.ComponentModel.DefaultValue("inherit")]
        public string FillDefault { get; set; }

        #endregion

        #region IAnimTargetAttrs Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("targetElement", DataType = "IDREF")]
        public string TargetElement { get; set; }

        #endregion

        #region IAnimModeAttrs Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("calcMode")]
        [System.ComponentModel.DefaultValueAttribute(AnimateTypeCalcMode.Linear)]
        public AnimateTypeCalcMode CalcMode { get; set; }

        #endregion

        #region ISkipContentAttrs Members

        /// <remarks/>
        [System.Xml.Serialization.XmlAttributeAttribute("skip-content")]
        [System.ComponentModel.DefaultValueAttribute(true)]
        public bool SkipContent { get; set; }

        #endregion
    }
}
